package com.shrcl.engineerprocess.domain;

import com.shrcl.engineerprocess.domain.CertificationAgencyCode;
import com.shrcl.engineerprocess.domain.impl.CertificationImpl;
import com.shrcl.engineerprocess.domain.proxy.CertificationProxy;
import edu.fudan.mylang.pf.EntityImplementation;
import edu.fudan.mylang.pf.IModelObject;
import edu.fudan.mylang.pf.INamedModelObject;

@EntityImplementation(implementBy = CertificationImpl.class)
public interface Certification extends IModelObject, INamedModelObject {
  public abstract CertificationAgencyCode getAgency();
  
  public abstract Certification setAgency(final CertificationAgencyCode agency);
  
  public abstract String getName();
  
  public abstract Certification setName(final String name);
  
  public abstract String getLevel();
  
  public abstract Certification setLevel(final String level);
  
  public abstract Integer getValidity();
  
  public abstract Certification setValidity(final Integer validity);
  
  public abstract Integer getReExamineCycle();
  
  public abstract Certification setReExamineCycle(final Integer reExamineCycle);
  
  public abstract String getEntityName();
  
  public abstract void checkValid();
  
  public abstract CertificationProxy toProxy();
}
